feat: juju_charm datasource and a upgrades.tf file#278
Merged
MichaelThamm merged 13 commits intomainfrom Apr 21, 2026
Merged
Conversation
This was referenced Apr 20, 2026
Signed-off-by: Michael Thamm <mike.thamm@canonical.com>
4 tasks
lucabello
approved these changes
Apr 21, 2026
This was referenced Apr 21, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Issue
Since we need to move to workload tracks for charms, our product component (the charm TF modules) tracks will no longer be in sync. This means that the channel input is not useful in products and we really only care about risk.
Blocked by:
Cross-track upgrades will be covered by:
Solution
We can hardcode the tracks of the components e.g., 0.31 for alertmanager and 3.10 for prometheus in the module TF tag
3.0.n. The user should not have to concern themselves with what track of COS they want because this has caused confusion in the past i.e., the reason we added channel input validation, which is simplified if we only expose a risk.Checklist
Context
We decided that it is okay for the product module to not surface the
channelinput, but charm modules must continue to surface this in their API to match the TF Juju provider API and the rest of the Juju TF ecosystem. We can require channel validation for each charm module to improve the user experience by not allowing the TF to outlive the charm.Testing Instructions
COS Lite
Since we do not have the workload tracks ready yet, I hardcoded the tracks to
dev:and applied with:
Apply complete! Resources: 32 added, 0 changed, 0 destroyed.COS
Since we do not have the workload tracks ready yet, I hardcoded the tracks to
dev:Apply complete! Resources: 85 added, 0 changed, 0 destroyed.Upgrade Notes
Previously, if you deploy COS on day 1 and then on day 2, you would always get the same revisions. This is no longer the case and charm revisions might change per apply because they are picked "latest in track". To pin these revisions, use the
revisioninput per COS component.